package com.szeldon.declatest.reports.plugins;

import java.util.Properties;

import com.szeldon.declatest.declaration.TestsSuiteDeclaration;
import com.szeldon.declatest.exec.TestSuiteExecHistory;
import com.szeldon.declatest.reports.exceptions.GeneratingReportException;

/**
 * Interface for plugins used for creating reports of tests.
 * 
 * @author szeldon
 * 
 */
public interface IReportGeneratorPlugin {

    /** Default directory for Declatest reports. */
    public static final String DEFAULT_REPORT_DIRECTORY = "declatest-reports";

    /**
     * 
     * @param suite
     * @param history
     * @param properties
     * @param reportDirectory
     * @param xmlReportFile
     * @throws GeneratingReportException
     */
    public abstract void generateReport(TestsSuiteDeclaration suite, TestSuiteExecHistory history,
            Properties properties, String reportDirectory, String xmlReportFile) throws GeneratingReportException;

    /**
     * Returns subdirectory name specific for this generator. For example, HTML reports may be created in "html"
     * subdirectory.
     * 
     * @return
     */
    public abstract String getSubdirectoryName();

}
